from datetime import timedelta
from lookas.track.Explorer import Explorer
from lookas.exif.FotoPoint import FotoPoint
import glob
import os

class FotoExplorer():
    def __init__(self, input):
        self.delta = timedelta()
        self.miejsca = []
        self.explorer = Explorer(input)
    
    def ustalZdjecia(self):        
    #TODO: path
        path='./foty/'
        for pozycje in self.getExplorer().getTrasy():
            for fileName in glob.glob(os.path.join(path, '*.jpg')):
                f = MinimalExifReader(fileName)
                czas = datetime.strptime(f.dateTimeOriginal(), '%Y:%m:%d %H:%M:%S')
                czas = czas.replace(tzinfo=MyTimeZone())
                czas += self.delta
    
                if czas < pozycje[0].getCzas() or czas > pozycje[-1].getCzas():
                    pass
                else:
                    for x in pozycje:
                        if x.getCzas() <= czas:
                            m = x
                    self.miejsca.append(FotoPoint(m.getCzas(), m.getLat(), m.getLon(), fileName))
    
    def setDelta(self, date, fileName):
        f = MinimalExifReader(fileName)
        czas = datetime.strptime(f.dateTimeOriginal(), '%Y:%m:%d %H:%M:%S')
        self.delta = date - czas
        
    def getMiejsca(self):
        return self.miejsca
    
    def getExplorer(self):
        return self.explorer
    
    def fotoZapis(self, nazwa):
        self.ustalZdjecia()
        
        place = '<point date="@date"><lat>@lookas:lat</lat><lat>@lookas:lon</lat>'+\
                '<desc>@lookas:description</desc></point>'

        content = '<?xml version="1.0" encoding="UTF-8"?>\n@lookas:fotos\n@lookas:track'
        
        pts = ''
        for poz in self.getMiejsca():
            pt = place.replace("@lookas:date", poz.getCzas().isoformat())
            pt = pt.replace("@lookas:lat", str(poz.getLat()))
            pt = pt.replace("@lookas:lon", str(poz.getLon()))
            pt = pt.replace("@lookas:description", poz.getPlik())                
            pts += pt + '\n'
            
        content = content.replace("@lookas:fotos", pts)    
        self.getExplorer().zapis(nazwa, (content, 0, 0))
